In [49]:
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.globals import ChartType, SymbolType
In [50]:
import pandas as pd
In [51]:
df=pd.read_csv("/Users/Lenovo/Desktop/data/most population.csv",encoding='gbk')
In [52]:
df
Out[52]:
Country 1968 1969 1970 1971 1972 1973 1974 1975 1976 ... Unnamed: 54 Unnamed: 55 Unnamed: 56 Unnamed: 57 Unnamed: 58 Unnamed: 59 Unnamed: 60 Unnamed: 61 Unnamed: 62 Unnamed: 63
0 Aruba 324.366667 326.255556 328.127778 330.222222 332.444444 334.683333 336.266667 336.983333 336.588889 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 Afghanistan 16.293023 16.686236 17.114913 17.577191 18.060863 18.547565 19.013188 19.436265 19.825220 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 Angola 4.629544 4.654892 4.724765 4.845413 5.012073 5.211328 5.423422 5.634074 5.839022 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 Albania 73.805547 75.974270 77.937190 79.848650 81.865912 83.823066 85.770949 87.767555 89.727226 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN 2019.0
4 Andorra 46.574468 49.059574 51.651064 54.380851 57.217021 60.068085 62.808511 65.329787 67.610638 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 Arab World 10.247580 10.541383 10.839409 11.140162 11.445801 11.762925 12.100336 12.464221 12.856964 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 United Arab Emirates 2.571487 2.859842 3.302084 3.906942 4.660293 5.556519 6.581963 7.720375 8.982287 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 Argentina 8.465799 8.593451 8.726075 8.864563 9.008392 9.155760 9.304051 9.451482 9.597244 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 Armenia 84.339410 86.509589 88.692237 90.892448 93.097506 95.285775 97.427046 99.499789 101.495574 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 American Samoa 129.945000 133.515000 136.815000 139.920000 142.835000 145.500000 147.980000 150.260000 152.280000 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 Antigua and Barbuda 142.093182 144.431818 145.856818 146.265909 145.756818 144.659091 143.454545 142.443182 141.743182 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 Australia 1.563204 1.596267 1.628028 1.684001 1.715242 1.741666 1.786314 1.808443 1.826666 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
12 Austria 89.796597 90.107229 90.422451 90.826859 91.356273 91.863829 92.020320 91.776496 91.614495 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
13 Azerbaijan 59.605994 60.948208 62.247173 63.503022 64.713496 65.888965 67.042455 68.184782 69.321425 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
14 Burundi 129.942640 132.940187 135.477959 137.460942 139.005685 140.386527 141.994977 144.115265 146.840771 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
15 Belgium NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
16 Benin 24.756917 25.280782 25.827776 26.397410 26.991548 27.613294 28.267222 28.956767 29.684046 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 Burkina Faso 19.861261 20.205314 20.557749 20.918790 21.290837 21.675742 22.076173 22.494682 22.931422 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 Bangladesh 467.991503 481.522355 493.450734 503.431152 511.836099 519.609203 528.095821 538.267658 550.452339 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 Bulgaria 75.654009 76.237657 76.738443 77.161665 77.521468 77.926123 78.448387 78.828003 79.170198 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
20 Bahrain 290.801449 298.613044 308.123188 319.292754 332.108696 347.140580 365.088406 386.294203 411.234783 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
21 Bahamas, The 15.848951 16.410390 16.920779 17.371528 17.768831 18.133566 18.493506 18.870729 19.271628 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
22 Bosnia and Herzegovina 71.786211 72.606797 73.447832 74.322012 75.217832 76.118281 76.996582 77.834082 78.618477 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
23 Belarus 43.751489 44.174246 44.567147 44.939736 45.301558 45.638296 45.935634 46.179255 46.396174 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
24 Belize 5.088163 5.228452 5.356510 5.470978 5.574310 5.668303 5.756554 5.842174 5.924901 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
25 Bermuda 981.481464 999.999982 1018.518501 1011.111093 1003.703686 996.296279 988.888871 981.481464 985.185168 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
26 Bolivia 3.967061 4.051736 4.139208 4.229429 4.322339 4.417911 4.516102 4.616837 4.720258 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
27 Brazil 10.814258 11.096561 11.379717 11.663231 11.947560 12.234719 12.527452 12.827759 13.135810 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
28 Barbados 551.723256 553.383721 555.572093 558.358139 561.662791 565.276744 568.939535 572.451163 575.774419 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
29 Brunei Darussalam 22.371537 23.453510 24.578558 25.744023 26.949146 28.180645 29.425427 30.669070 31.912903 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
234 Latin America & the Caribbean (IDA & IBRD coun... 13.056420 13.393631 13.734225 14.077883 14.424709 14.775465 15.131228 15.492689 15.860055 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
235 Timor-Leste 36.908204 37.634566 38.437458 39.357835 40.362609 41.308204 42.001009 42.315198 42.182313 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
236 Middle East & North Africa (IDA & IBRD countries) 13.977745 14.357934 14.741338 15.127501 15.518831 15.919482 16.334902 16.769741 17.224277 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
237 Tonga 112.609722 115.076389 117.154167 118.748611 119.893056 120.780556 121.641667 122.663889 123.936111 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
238 South Asia (IDA & IBRD) 142.704186 145.968720 149.317215 152.747520 156.263141 159.874824 163.597047 167.440068 171.406103 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
239 Sub-Saharan Africa (IDA & IBRD countries) 12.990055 13.326313 13.676847 14.042058 14.422207 14.817735 15.229421 15.657331 16.101527 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
240 Trinidad and Tobago 181.441520 182.687329 184.280702 186.304289 188.720468 191.424951 194.248148 197.063548 199.825926 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
241 Tunisia 31.187043 31.883303 32.594033 33.318068 34.058561 34.818119 35.601023 36.411650 37.245610 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
242 Turkey 43.210977 44.249042 45.315675 46.412691 47.538767 48.688767 49.855493 51.033949 52.219335 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
243 Tuvalu 186.566667 189.000000 191.166667 192.200000 193.000000 194.066667 196.833333 202.000000 210.766667 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
244 Tanzania 14.366135 14.812125 15.280516 15.772968 16.288485 16.823508 17.372924 17.933201 18.503228 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
245 Uganda 44.247800 45.682684 47.072719 48.405285 49.695391 50.980707 52.314884 53.738066 55.267374 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
246 Ukraine 80.110141 80.692643 81.278773 81.876258 82.476922 83.068684 83.632737 84.155804 84.634036 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
247 Upper middle income 23.778795 24.363881 24.965006 25.576964 26.159279 26.726385 27.270783 27.778004 28.260626 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
248 Uruguay 15.853954 15.969843 16.054125 16.102623 16.120792 16.124540 16.135842 16.170586 16.234556 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
249 United States 21.913623 22.128822 22.388131 22.672989 22.917012 23.136797 23.349158 23.580516 23.805650 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
250 Uzbekistan 26.550710 27.491413 28.397548 29.258211 30.082228 30.890449 31.713956 32.575172 33.480886 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
251 St. Vincent and the Grenadines 227.338462 229.661538 232.074359 234.592308 237.212821 239.925641 242.600000 245.287179 247.928205 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
252 Venezuela, RB 12.133429 12.525664 12.920348 13.316643 13.715429 14.119061 14.530871 14.953244 15.387119 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
253 British Virgin Islands 62.806667 64.173333 65.513333 66.780000 68.053333 69.280000 70.413333 71.326667 72.140000 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
254 Virgin Islands (U.S.) 159.142857 172.285714 181.360000 202.677143 218.054286 240.345714 256.974286 269.954286 274.760000 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
255 Vietnam 126.558730 129.979864 133.352155 136.667901 139.938182 143.179591 146.417896 149.676454 152.954874 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
256 Vanuatu 6.616653 6.802871 7.003856 7.219852 7.449467 7.690484 7.938802 8.191879 8.450041 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
257 World 27.750352 28.336997 28.929465 29.539134 30.139309 30.732196 31.330484 31.915079 32.485190 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
258 Samoa 48.581979 49.646643 50.582686 51.382686 52.048057 52.602120 53.073498 53.483746 53.839929 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
259 Kosovo 106.824653 109.396528 111.968403 114.540277 117.387710 120.143290 122.990723 125.746303 128.593736 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
260 Yemen, Rep. 11.367790 11.548071 11.730560 11.914247 12.104048 12.312851 12.557530 12.850531 13.197608 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
261 South Africa 17.263472 17.720099 18.193024 18.683915 19.191905 19.712551 20.239669 20.769429 21.298410 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
262 Zambia 5.271623 5.442285 5.621635 5.810172 6.007848 6.214162 6.428287 6.649650 6.877713 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
263 Zimbabwe 12.774734 13.212710 13.672749 14.157896 14.666954 15.193812 15.729802 16.269549 16.809019 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

264 rows × 64 columns

In [53]:
country=list(df.Country)
In [54]:
year=list(df['2018'])
In [55]:
各国人口密度=list(zip(country,year))
In [56]:
各国人口密度
Out[56]:
[('Aruba', 588.0277778),
 ('Afghanistan', 56.93776001),
 ('Angola', 24.71305206),
 ('Albania', 104.6122628),
 ('Andorra', 163.8425532),
 ('Arab World', 37.37236537),
 ('United Arab Emirates', 135.6091101),
 ('Argentina', 16.2585101),
 ('Armenia', 103.6802248),
 ('American Samoa', 277.325),
 ('Antigua and Barbuda', 218.83181820000001),
 ('Australia', 3.249129487),
 ('Austria', 107.2069267),
 ('Azerbaijan', 120.26531990000001),
 ('Burundi', 435.178271),
 ('Belgium', 377.2149273),
 ('Benin', 101.8539198),
 ('Burkina Faso', 72.19128289),
 ('Bangladesh', 1239.5793119999998),
 ('Bulgaria', 64.70353721),
 ('Bahrain', 2017.2737),
 ('Bahamas, The', 38.52547453),
 ('Bosnia and Herzegovina', 64.92048828),
 ('Belarus', 46.7287999),
 ('Belize', 16.79399386),
 ('Bermuda', 1184.592572),
 ('Bolivia', 10.48014585),
 ('Brazil', 25.06171624),
 ('Barbados', 666.6069767000001),
 ('Brunei Darussalam', 81.39696395),
 ('Bhutan', 19.77752777),
 ('Botswana', 3.977424876),
 ('Central African Republic', 7.490412212000001),
 ('Canada', 4.075308214),
 ('Central Europe and the Baltics', 92.76643663),
 ('Switzerland', 215.5213784),
 ('Channel Islands', 861.1060937999999),
 ('Chile', 25.18944607),
 ('China', 148.34883330000002),
 ("Cote d'Ivoire", 78.83405346),
 ('Cameroon', 53.34398891),
 ('Congo, Dem. Rep.', 37.08259236),
 ('Congo, Rep.', 15.35684627),
 ('Colombia', 44.74870212),
 ('Comoros', 447.2444775),
 ('Cabo Verde', 134.9297767),
 ('Costa Rica', 97.91306306),
 ('Caribbean small states', 18.17701618),
 ('Cuba', 108.9995962),
 ('Curacao', nan),
 ('Cayman Islands', 267.3916667),
 ('Cyprus', 128.7083333),
 ('Czech Republic', 137.60288789999998),
 ('Germany', 237.37096980000004),
 ('Djibouti', 41.36842105),
 ('Dominica', 95.5),
 ('Denmark', 138.0673017),
 ('Dominican Republic', 219.9785759),
 ('Algeria', 17.73007507),
 ('East Asia & Pacific (excluding high income)', 130.8104315),
 ('Early-demographic dividend', 98.13836364),
 ('East Asia & Pacific', 95.43160553),
 ('Europe & Central Asia (excluding high income)', 18.47737541),
 ('Europe & Central Asia', 33.4968853),
 ('Ecuador', 68.78868175),
 ('Egypt, Arab Rep.', 98.87346929),
 ('Euro area', 127.5822777),
 ('Eritrea', nan),
 ('Spain', 93.52905826),
 ('Estonia', 30.38610536),
 ('Ethiopia', 109.22455900000001),
 ('European Union', 121.07819409999999),
 ('Fragile and conflict affected situations', 39.86931254),
 ('Finland', 18.15685565),
 ('Fiji', 48.35703339),
 ('France', 122.33839569999999),
 ('Faroe Islands', 34.73996983),
 ('Micronesia, Fed. Sts.', 160.9142857),
 ('Gabon', 8.224764233),
 ('United Kingdom', 274.82739219999996),
 ('Georgia', 65.27520207),
 ('Ghana', 130.8214292),
 ('Gibraltar', 3371.8),
 ('Guinea', 50.52221227),
 ('Gambia, The', 225.30652169999996),
 ('Guinea-Bissau', 66.65394737),
 ('Equatorial Guinea', 46.66573975),
 ('Greece', 83.22473235),
 ('Grenada', 327.8058824),
 ('Greenland', 0.136496528),
 ('Guatemala', 160.9537794),
 ('Guam', 306.9777778),
 ('Guyana', 3.957348235),
 ('High income', 34.43776584),
 ('Hong Kong SAR, China', 7096.190476000001),
 ('Honduras', 85.68703191),
 ('Heavily indebted poor countries (HIPC)', 44.89578165),
 ('Croatia', 73.077198),
 ('Haiti', 403.5985486),
 ('Hungary', 107.9066055),
 ('IBRD only', 68.7859052),
 ('IDA & IBRD total', 68.70845188),
 ('IDA total', 68.48408972),
 ('IDA blend', 93.32562183),
 ('Indonesia', 147.75219009999998),
 ('IDA only', 60.26218738),
 ('Isle of Man', 147.50350880000002),
 ('India', 454.9380726),
 ('Not classified', nan),
 ('Ireland', 70.45298302),
 ('Iran, Islamic Rep.', 50.22242012),
 ('Iraq', 88.53057004),
 ('Iceland', 3.526922693),
 ('Israel', 410.52680219999996),
 ('Italy', 205.4507479),
 ('Jamaica', 270.9930748),
 ('Jordan', 112.1424983),
 ('Japan', 347.0734584),
 ('Kazakhstan', 6.769825907),
 ('Kenya', 90.29941666),
 ('Kyrgyz Republic', 32.92909281),
 ('Cambodia', 92.05641287),
 ('Kiribati', 143.02098769999998),
 ('St. Kitts and Nevis', 201.69615380000002),
 ('Korea, Rep.', 529.6521036),
 ('Kuwait', 232.1722222),
 ('Latin America & Caribbean (excluding high income)', 32.02146146),
 ('Lao PDR', 30.59578423),
 ('Lebanon', 669.4941349),
 ('Liberia', 50.03090739),
 ('Libya', 3.7956323810000003),
 ('St. Lucia', 298.17868849999996),
 ('Latin America & Caribbean', 32.00573337),
 ('Least developed countries: UN classification', 56.8413289),
 ('Low income', 51.67373831),
 ('Liechtenstein', 236.9375),
 ('Sri Lanka', 345.558922),
 ('Lower middle income', 150.08151819999998),
 ('Low & middle income', 69.24159606),
 ('Lesotho', 69.43781291),
 ('Late-demographic dividend', 51.40872056),
 ('Lithuania', 44.53135138),
 ('Luxembourg', 250.0938272),
 ('Latvia', 30.98330653),
 ('Macao SAR, China', 20777.50026),
 ('St. Martin (French part)', nan),
 ('Morocco', 80.72851893),
 ('Monaco', nan),
 ('Moldova', 123.5198035),
 ('Madagascar', 45.13985562),
 ('Maldives', 1718.9866670000001),
 ('Middle East & North Africa', 39.99770291),
 ('Mexico', 64.91462641),
 ('Marshall Islands', 324.5166667),
 ('Middle income', 72.29486998),
 ('North Macedonia', 82.59151467),
 ('Mali', 15.63501586),
 ('Malta', 1511.03125),
 ('Myanmar', 82.23861548),
 ('Middle East & North Africa (excluding high income)', 44.31116946),
 ('Montenegro', 46.27100372),
 ('Mongolia', 2.040608667),
 ('Northern Mariana Islands', 123.6565217),
 ('Mozambique', 37.50853531),
 ('Mauritania', 4.272163578),
 ('Mauritius', 623.3019704),
 ('Malawi', 192.4407616),
 ('Malaysia', 95.96282149),
 ('North America', 19.97097624),
 ('Namibia', 2.973745582),
 ('New Caledonia', 15.53938731),
 ('Niger', 17.71765059),
 ('Nigeria', 215.06498900000003),
 ('Nicaragua', 53.72704836),
 ('Netherlands', 511.45791039999995),
 ('Norway', 14.55491954),
 ('Nepal', 195.9391071),
 ('Nauru', 635.2),
 ('New Zealand', 18.55417569),
 ('OECD members', 37.80923456),
 ('Oman', 15.6041454),
 ('Other small states', 15.13861641),
 ('Pakistan', 275.28931869999997),
 ('Panama', 56.18607748),
 ('Peru', 24.99160625),
 ('Philippines', 357.6883053),
 ('Palau', 38.92826087),
 ('Papua New Guinea', 19.00436338),
 ('Poland', 124.0358862),
 ('Pre-demographic dividend', 51.68744002),
 ('Puerto Rico', 360.22018039999995),
 ('Korea, Dem. People’s Rep.', 212.1901752),
 ('Portugal', 112.2394535),
 ('Paraguay', 17.50835892),
 ('West Bank and Gaza', 758.9845515),
 ('Pacific island small states', 38.27674455),
 ('Post-demographic dividend', 35.26748894),
 ('French Polynesia', 75.86857923),
 ('Qatar', 239.5931955),
 ('Romania', 84.63984701),
 ('Russian Federation', 8.822079555),
 ('Rwanda', 498.65987029999997),
 ('South Asia', 380.2471337),
 ('Saudi Arabia', 15.67665431),
 ('Sudan', nan),
 ('Senegal', 82.34747832),
 ('Singapore', 7952.998418000001),
 ('Solomon Islands', 23.32468739),
 ('Sierra Leone', 105.98717099999999),
 ('El Salvador', 309.8814672),
 ('San Marino', 563.0833332999999),
 ('Somalia', 23.923476899999997),
 ('Serbia', 79.83174022),
 ('Sub-Saharan Africa (excluding high income)', 50.75862834),
 ('South Sudan', nan),
 ('Sub-Saharan Africa', 50.76208431),
 ('Small states', 16.22446282),
 ('Sao Tome and Principe', 219.8208333),
 ('Suriname', 3.69225),
 ('Slovak Republic', 113.29057820000001),
 ('Slovenia', 102.6398595),
 ('Sweden', 25.00104343),
 ('Eswatini', 66.05761628),
 ('Sint Maarten (Dutch part)', nan),
 ('Seychelles', 210.3521739),
 ('Syrian Arab Republic', 92.06710777),
 ('Turks and Caicos Islands', 39.64736842),
 ('Chad', 12.29173364),
 ('East Asia & Pacific (IDA & IBRD countries)', 130.185453),
 ('Europe & Central Asia (IDA & IBRD countries)', 20.01725666),
 ('Togo', 145.0467733),
 ('Thailand', 135.89720680000002),
 ('Tajikistan', 65.57271417),
 ('Turkmenistan', 12.45059477),
 ('Latin America & the Caribbean (IDA & IBRD countries)', 31.41414444),
 ('Timor-Leste', 85.27047747),
 ('Middle East & North Africa (IDA & IBRD countries)', 43.81292975),
 ('Tonga', 143.3291667),
 ('South Asia (IDA & IBRD)', 380.2471337),
 ('Sub-Saharan Africa (IDA & IBRD countries)', 50.76208431),
 ('Trinidad and Tobago', 270.92748539999997),
 ('Tunisia', 74.44132338),
 ('Turkey', 106.96012890000002),
 ('Tuvalu', 383.6),
 ('Tanzania', 63.57907879999999),
 ('Uganda', 213.06173450000003),
 ('Ukraine', 77.02966735),
 ('Upper middle income', 45.46917663),
 ('Uruguay', 19.70802765),
 ('United States', 35.76608858),
 ('Uzbekistan', 77.46920545),
 ('St. Vincent and the Grenadines', 282.5897436),
 ('Venezuela, RB', 32.73079191),
 ('British Virgin Islands', 198.68),
 ('Virgin Islands (U.S.)', 305.6485714),
 ('Vietnam', 308.1252459),
 ('Vanuatu', 24.00984413),
 ('World', 59.63623626),
 ('Samoa', 69.30388693),
 ('Kosovo', nan),
 ('Yemen, Rep.', 53.97785291),
 ('South Africa', 47.63011978),
 ('Zambia', 23.3414789),
 ('Zimbabwe', 37.32459093)]
In [60]:
def map_world() -> Map:
    c = (
        Map()
        .add("各国人口密度",各国人口密度, "world")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="2018年"),
            visualmap_opts=opts.VisualMapOpts(max_=600),
        )
    )
    return c
In [61]:
ditu=map_world()
ditu.render_notebook()
Out[61]:
In [62]:
def map_world() -> Map:
    c = (
        Map()
        .add("各国人口密度",各国人口密度, "world")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="1968年"),
            visualmap_opts=opts.VisualMapOpts(max_=600),
        )
    )
    return c
In [63]:
ditu=map_world()
ditu.render_notebook()
Out[63]:

本项目通过分析世界各个国家还有每个国家下属城市的人口密度,以此来对一些人口分布不均的地区提出一些有效的建议来解决问题

结论:

  • 上面的地图对比了1968到2018这五十年来人口密度的变化

  • 从两张地图的颜色对比可以明显看出,世界人口密度最高的区域集中在亚洲,例如中国,印度,日本,新加坡等国家,这50年的时间里,欧洲、南北美洲、澳洲、非洲的人口增长都相对比较缓慢,人口密度不算高。

建议:

  • 为了让人口在全球内得到合理的分布,可以通过借助经济、 政治、文化力量, 在经济上, 借助跨国公司等渠道促进人口合理分布;在政治上可形成联盟,加强成员国之间的沟通,达到互助互利;在文化上可以通过举办世界旅游节等活动,让更多的人知道各国的魅力所在,吸引人口迁移。
In [1]:
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker 
import matplotlib.animation as animation
from IPython.display import HTML
In [2]:
df = pd.read_csv('https://gist.githubusercontent.com/johnburnmurdoch/4199dbe55095c3e13de8d5b2e5e5307a/raw/fa018b25c24b7b5f47fd0568937ff6c04e384786/city_populations', 
                 usecols=['name', 'group', 'year', 'value'])
df.head(5)
Out[2]:
name group year value
0 Agra India 1575 200.0
1 Agra India 1576 212.0
2 Agra India 1577 224.0
3 Agra India 1578 236.0
4 Agra India 1579 248.0
In [3]:
current_year = 2018
dff = (df[df['year'].eq(current_year)]
       .sort_values(by='value', ascending=True)
       .head(10))
dff
Out[3]:
name group year value
2537 Karachi Asia 2018 18185.2
4327 New York North America 2018 18713.0
1336 Dhaka Asia 2018 19632.6
1195 Cairo Middle East 2018 19849.6
4679 Osaka Asia 2018 20409.0
3574 Mexico City Latin America 2018 21520.4
5445 Sao Paulo Latin America 2018 21697.8
3748 Mumbai India 2018 22120.0
689 Beijing Asia 2018 22674.2
5547 Shanghai Asia 2018 25778.6
In [4]:
colors = dict(zip(
    ['India', 'Europe', 'Asia', 'Latin America',
     'Middle East', 'North America', 'Africa'],
    ['#adb0ff', '#ffb3ff', '#90d595', '#e48381',
     '#aafbff', '#f7bb5f', '#eafb50']
))
group_lk = df.set_index('name')['group'].to_dict()
In [6]:
fig, ax = plt.subplots(figsize=(15, 8))
dff = dff[::-1]   # 从上到下翻转值
# 将颜色值传递给`color=`
ax.barh(dff['name'], dff['value'], color=[colors[group_lk[x]] for x in dff['name']])
# 遍历这些值来绘制标签和值(Tokyo, Asia, 38194.2)
for i, (value, name) in enumerate(zip(dff['value'], dff['name'])):
    ax.text(value, i,     name,            ha='right')  # Tokyo: 名字
    ax.text(value, i-.25, group_lk[name],  ha='right')  # Asia: 组名
    ax.text(value, i,     value,           ha='left')   # 38194.2: 值
# 在画布右方添加年份
ax.text(1, 0.4, current_year, transform=ax.transAxes, size=46, ha='right')
Out[6]:
Text(1, 0.4, '2018')
In [8]:
fig, ax = plt.subplots(figsize=(15, 8))
def draw_barchart(year):
    dff = df[df['year'].eq(year)].sort_values(by='value', ascending=True).tail(10)
    ax.clear()
    ax.barh(dff['name'], dff['value'], color=[colors[group_lk[x]] for x in dff['name']])
    dx = dff['value'].max() / 200
    for i, (value, name) in enumerate(zip(dff['value'], dff['name'])):
        ax.text(value-dx, i,     name,           size=14, weight=600, ha='right', va='bottom')
        ax.text(value-dx, i-.25, group_lk[name], size=10, color='#444444', ha='right', va='baseline')
        ax.text(value+dx, i,     f'{value:,.0f}',  size=14, ha='left',  va='center')
    # ... polished styles
    ax.text(1, 0.4, year, transform=ax.transAxes, color='#777777', size=46, ha='right', weight=800)
    ax.text(0, 1.06, 'Population (thousands)', transform=ax.transAxes, size=12, color='#777777')
    ax.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}'))
    ax.xaxis.set_ticks_position('top')
    ax.tick_params(axis='x', colors='#777777', labelsize=12)
    ax.set_yticks([])
    ax.margins(0, 0.01)
    ax.grid(which='major', axis='x', linestyle='-')
    ax.set_axisbelow(True)
    ax.text(0, 1.12, 'The most populous cities in the world from 1500 to 2018',
            transform=ax.transAxes, size=24, weight=600, ha='left')
#     ax.text(1, 0, 'by QIML', transform=ax.transAxes, ha='right',
#             color='#777777', bbox=dict(facecolor='white', alpha=0.8, edgecolor='white'))
    plt.box(False)
    
draw_barchart(2018)
import matplotlib.animation as animation
from IPython.display import HTML
fig, ax = plt.subplots(figsize=(15, 8))
animator = animation.FuncAnimation(fig, draw_barchart, frames=range(1968, 2019))
HTML(animator.to_jshtml()) 
# or use animator.to_html5_video() or animator.save()
Out[8]:

结论:

  • 在1968年,亚洲只有三个城市人口密度排世界前十,到了2018年,变成了五个,其中中国占了两个,分别是上海和北京,而且排名不断上升

  • 人口密度不一定是随着城市化进程而增大的,因为纽约的人口密度是在不断降低的,同时也说明人口密度的大小并不能代表一个地区的经济活力。

措施:

  • 人口密度大的城市应该更加注意自然资源,能源,还有环境和大气污染的问题,例如北京上海等地区,还有挖掘整合现有土地资源,提高土地利用率

  • 对于人口密度过低的城市,国家应该对其进行一定的政策扶持调控,优化人口分布空间格局

本项目pythonanywhere链接:jiayiluo.pythonanywhere.com